AI system to determine actionable intent

ABSTRACT

A method includes receiving an email addressed to a recipient user, processing the received email using a reparametrized recurrent neural network model to identify an action based on the received email, and wherein the reparametrized recurrent neural network model has been trained on an email dataset annotated with recipient corresponding actions and reparametrized on unannotated conversation data having structures similar to email data.

RELATED APPLICATION

This application claims priority to U.S. Provisional Application Ser. No. 62/610,038 (entitled AI System to Determine Actionable Intent, filed Dec. 22, 2017) which is incorporated herein by reference.

BACKGROUND

Despite the emergence of many new communication tools in the workplace, email remains a major, if not the dominant, messaging platform in many organizations. Many people receive hundreds of email messages and other communications each day. Responding to or otherwise acting on each email in a timely manner can consume significant amounts of time, interfering with other job responsibilities. Helping people manage and act on their emails can make them more productive.

SUMMARY

A method includes receiving an email addressed to a recipient user, processing the received email using a reparametrized recurrent neural network model to identify an action based on the received email, and wherein the reparametrized recurrent neural network model has been trained on an email dataset annotated with recipient corresponding actions and reparametrized on unannotated conversation data having structures similar to email data.

A machine-readable storage device has instructions for execution by a processor of a machine to cause the processor to perform operations to perform a method of generating a model. The method includes receiving a communication addressed to a recipient user, processing the received communication using a reparametrized recurrent neural network model to identify an action based on the received email, and wherein the reparametrized recurrent neural network model has been trained on a communication dataset annotated with recipient corresponding actions and reparametrized on unannotated conversation data having structures similar to the communication dataset data.

A system includes one or more processors and a storage device coupled to the one or more processors having instructions stored thereon to cause the one or more processors to execute intent recognition operations. The operations include receiving a communication addressed to a recipient user, processing the received communication using a reparametrized recurrent neural network model to identify an action based on the received communication, and wherein the reparametrized recurrent neural network model has been trained on a communication dataset from a first domain, annotated with recipient corresponding actions, wherein the first domain correlates to the received communication, and reparametrized on unannotated conversation data from a second domain having structures similar to email data.

A computer implemented method of training a recurrent neural network (RNN) for identifying actions responsive to received emails includes operations comprising initializing weights of the RNN, training the RNN on a target domain set of recipient action annotated emails, and reparametrizing the RNN on unannotated conversation data threads.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart illustrating a computer implemented method of generating actions responsive to email communications according to an example embodiment.

FIG. 2 is a flowchart illustrating a computer implemented method of training a recurrent neural network (RNN) according to an example embodiment.

FIG. 3 is a table of example actions responsive to a target domain communication according to an example embodiment.

FIG. 4 is an example of data from additional domains according to an example embodiment.

FIG. 5 is a table of example labels for communications from various domains according to an example embodiment.

FIG. 6 is a table of example statistics regarding communications from various domains according to an example embodiment.

FIG. 7 is a block flow diagram of processing threaded messages according to an example embodiment.

FIG. 8 is a partial computation graph consisting of a single RNN long short-term memory (LSTM) cell according to an example embodiment.

FIG. 9 is a computation graph of an RNN LSTM cell reparametrized with shared and domain specific components according to an example embodiment.

FIG. 10 is a block diagram of circuitry for example devices to perform methods and algorithms according to example embodiments.

DETAILED DESCRIPTION

In the following description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments which may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized, and that structural, logical and electrical changes may be made without departing from the scope of the present invention. The following description of example embodiments is, therefore, not to be taken in a limited sense, and the scope of the present invention is defined by the appended claims.

The functions or algorithms described herein may be implemented in software in one embodiment. The software may consist of computer executable instructions stored on computer readable media or computer readable storage device such as one or more non-transitory memories or other type of hardware based storage devices, either local or networked. Further, such functions correspond to modules, which may be software, hardware, firmware or any combination thereof. Multiple functions may be performed in one or more modules as desired, and the embodiments described are merely examples. The software may be executed on a digital signal processor, ASIC, microprocessor, or other type of processor operating on a computer system, such as a personal computer, server or other computer system, tuning such computer system into a specifically programmed machine.

The functionality can be configured to perform an operation using, for instance, software, hardware, firmware, or the like. For example, the phrase “configured to” can refer to a logic circuit structure of a hardware element that is to implement the associated functionality. The phrase “configured to” can also refer to a logic circuit structure of a hardware element that is to implement the coding design of associated functionality of firmware or software. The term “module” refers to a structural element that can be implemented using any suitable hardware (e.g., a processor, among others), software (e.g., an application, among others), firmware, or any combination of hardware, software, and firmware. The term, “logic” encompasses any functionality for performing a task. For instance, each operation illustrated in the flowcharts corresponds to logic for performing that operation. An operation can be performed using, software, hardware, firmware, or the like. The terms, “component,” “system,” and the like may refer to computer-related entities, hardware, and software in execution, firmware, or combination thereof. A component may be a process running on a processor, an object, an executable, a program, a function, a subroutine, a computer, or a combination of software and hardware. The term, “processor,” may refer to a hardware component, such as a processing unit of a computer system.

Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computing device to implement the disclosed subject matter. The term, “article of manufacture,” as used herein is intended to encompass a computer program accessible from any computer-readable storage device or media. Computer-readable storage media can include, but are not limited to, magnetic storage devices, e.g., hard disk, floppy disk, magnetic strips, optical disk, compact disk (CD), digital versatile disk (DVD), smart cards, flash memory devices, among others. In contrast, computer-readable media, i.e., not storage media, may additionally include communication media such as transmission media for wireless signals and the like.

Most current automated email replies have minimal intelligence, other than filters, and generally do not tailor a reply based on the substance of the original email. For example, consider a system that is capable of predicting a recipient's next action when receiving an email. The system could offer assistance to accomplish that action, for example in the form of a quick reply, adding a task to the recipient's to-do list, or helping the recipient take action against another system. To build and train such systems, email data sets may be used, but unfortunately public email datasets such as Klimt and Yang 2004 and Oard et al. 2015, are not annotated and may be too small to be useful in training a machine learning system to perform such actions reliably. Such public email datasets also lack direct information/annotation regarding the recipients' actions, other than perhaps email replies. Still further, annotation of even such a small database can be laborious

In embodiments of the inventive subject matter, an annotation scheme for actions is applied to a corpus of publicly available emails for use in a machine learning system that processes emails and generates actions based on recipient intent. In order to overcome the lack of sufficient email training data for end-to-end training, other data from what may be referred to as secondary domains is used. The data from secondary domains that contain structures similar to email and recipient actions are annotated in a limited manner that may not include actions, but is useful for training purposes. Multitask and multidomain learning, which use domain or task invariant knowledge to improve performance on a specific task/domain, are used to train the system. Such secondary domains and tasks in combination with multitask and multidomain learning can help a system model discover invariant structures in conversations that improve a classifier on the primary data and task: email recipient action classification.

More particularly, an action-based annotation scheme is used to annotate emails with respect to actions a user takes or is expected to take in response to receiving an email rather than sender intent in sending an email. Since the email data may not be large enough for end-to-end training, training may be enriched with additional semantic and pragmatic information derived from other tasks and domains without annotation for expected action (e.g., IRC (internet relay chat) and Reddit, as well as threaded messages from other domains). In one embodiment, a model referred to as a Recurrent AttentIve Neural Bag-Of-Word model (RAINBOW) for multi-task RNN reparametrization may be used.

Previous work in natural language processing tackled multidomain/multitask learning by use of a shared representation space. The overall model architecture generally is unchanged from the single-domain single-task setting; but the learned representations were reparametrized to take account of knowledge from additional data and task/domain knowledge. Such shared representation space encoders do not perform well on previously unseen tasks.

As opposed to encoding all the data and descriptions into a shared representation space, embodiments of the present inventive subject matter train multiple parameter-shared models across different domains and tasks jointly, without maintaining a shared encoded representation in the network.

An annotation scheme designed for workplace email recipient actions may be used to annotate a set of emails to produce an annotated domain specific dataset for use in training. A family of reparametrized recurrent neural network (RNN) models is created for both multitask and multidomain learning. Such models encode domain-invariant features and, in the absence of sufficient data for end-to-end learning, still provide useful features for scoping tasks in an unsupervised learning setting. Reparametrized long short-term memory (LSTM) networks are recurrent neural networks which may be used as building components or blocks of hidden layers of an RNN. Such LSTM networks utilize a sequence of cells that are used to weight words in a communication, allowing words to be remembered or forgotten as the communication is processed by the network. For instance, a change of subject may result in the new subject being valued higher than the old subject relative to new words being processed. In other words, the next word encountered is more likely to be related to the new subject and less related to the old subject. The same concept is applied to likely tasks that should be generated.

Reparametrized LSTM networks consistently achieve better likelihood and overall accuracy on test data than common domain adaption variants. The representation extracted from a network instantiated with the shared parameter weights performs well on a previously unseen task.

FIG. 1 is a flowchart illustrating a method 100 of generating actions responsive to email communications using a reparametrized recurrent neural network. Method 100 includes receiving at operation 110 a communication, such as an email addressed to a recipient user. The communication may be an email, text message, or other type of communication, including a paper memo or letter that has been scanned and run through optical character recognition (OCR) to provide a digital representation of the words of the communication. The received communication is processed by operation 120 using a reparametrized recurrent neural network (RNN) model to identify an action based on the received email. The action is generated at operation 130. Identification of the action may include simply identifying the type of action to take, which generating the action may include further operations including interfacing with other programs to generate a responsive communication and obtaining further information to add to or control the action.

In one embodiment, the action may comprise an email response with data requested in a received email. The network may identify a general action, such as response via email, which then may interact with an email program, such as Outlook, using an application programming interface, to reply or suggest a reply to the received email. The email response may be populated with data requested in the received email. The data may be provided by a search engine that can process a natural language query identified in the received email, such as “When will the Apollo project be completed”. The results from that query may simply be “January 14.” Further interaction with the email program may include commanding the email program to send the message using a common application programming interface.

In a further embodiment, the action may comprise setting up a calendar appointment. The network may identify one or more of a time, date, location, call-in information, and invitees, and interface with Outlook to generate a meeting request based on such data. Execution of the action would then be sending the meeting request.

Further actions, such as replying yes or no to a question in the received email, simply acknowledging receipt, sharing requested content, and others may be performed in a similar manner. In some embodiments, execution of the action may be approved via user input prior to execution, or simply automatically executed responsive to completion of generation of the action.

The reparametrized recurrent neural network model is trained on an email dataset annotated with recipient corresponding actions and reparametrized on unannotated conversation data having structures similar to email data. In one embodiment, the model is parameterized as a function of shared components and domain specific components. The model may be an LSTM model in further embodiments.

At operation 140, the action may be taken, either directly without user interaction, or with a user interaction, such as a user selecting to proceed with the action via keyboard, touchpad, or any other means for interacting with a device implementing method 100.

Training of the RNN is performed according to a method 200 represented in flowchart form in FIG. 2. The method starts at 210. Operation 220 initializes the RNN neuron weights. The weights may be initialized randomly in some embodiments or may be set to one or more selected values between a range, for example between −1 and +1. Training of the RNN is performed at operation 230 using a training dataset. The training data set includes an annotated email data set that is annotated with likely actions, as well as other data that may be structurally similar to email. The other data may include prediction labels, such as structural related labels identifying an end of an email thread, messages with attachments, turn taking, and an end of a Reddit thread. In other words, the labels are representative of the structure of the other data for which emails exhibit the same type of structure. Email may occur in an email thread with an end, may have attachments, and the email threads may exhibit turn taking, where different users email and reply to emails, taking turns, or replying twice to an email without an intervening reply for example. Further detail regarding the annotation and labeling is provided below.

At operation 240, validation of the RNN is performed by using a portion of the training data not used for training. The portion of the training data is submitted to the trained RNN to determine if the annotated action is the action selected by the RNN. Decision operation 250 is executed to determine if the model has achieved the highest accuracy so far in the training process 200. If yes, the model is updated with the best parameters so far at operation 260. If no, or after the model is updated at operation 260, a check is made at decision operation 270 if a number of iterations of method 200 has exceeded a limit. If not, method 200 returns to operation 220 to initialize the network weights again, as indicated at line 280. If the iteration limit has been exceeded, training is complete, and method 200 stops at 290.

In one example embodiment, email messages that are annotated and evaluated are part of the Avocado dataset (Oard et al. 2015), which consists of emails and attachments taken from 279 accounts of a defunct information technology company referred to as “Avocado”. Email threads may be reconstructed from recipients' mailboxes. In one example, complete threads (threads that contain all replies) and linear (every follow-up is a reply to the previous email) threads may be used.

Workplace email is known to be highly task-oriented. As opposed to chit chat (inconsequential discussions or talk about trivial matters) on the Internet, speaker intent and expected action on email are in general very precise. Annotating the email with such expected actions results in a better prediction of actions a reader would take responsive to an email or email thread. Annotating recipient actions has the following advantages over annotating sender intent: First, action based annotation is not tied to a particular speech-act taxonomy. The design of such a taxonomy is highly dependent on use cases, and definitions of sender intent can be circular.

Even within a single target domain such as email, there have been several different sender intent taxonomies. A speech-act-agnostic scheme that focuses on the recipient's action generalizes better across scenarios. The new annotation scheme also has a lower risk of injection bias because the annotation relies on expected (or even observed) actions performed in response to an email, as opposed to relying on the annotator's intuition about the sender's intent. Lastly, while annotators may be relied upon for action annotations, many of the annotated actions used in one embodiment translate into very specific actions on the computer. Therefore intelligent user interfaces may be used to capture and remind users of such email actions, allowing the user to approve execution of the actions or allow the actions to be automatically executed without user approval.

One example set of actions is shown in table form in FIG. 3 at table 300. The actions fall into three broad categories in this example, referred to as message sending, software interaction, and share content. Note that table 300 is used as an example, and that there are likely other categories and actions that may be used to annotate communications in further embodiments.

Message sending: In many cases, the recipient is most likely to send out another email, either as a reply to the sender or to someone else. As listed in table 300, REPLY-YESNO, REPLY-ACK, REPLY-OTHER, INVESTIGATE, SEND-NEW-EMAIL are actions that send out a new email, either on the same thread or a new one.

Software interaction: The most likely recipient actions are interaction with office software such as SETUP-APPOINTMENT and APPROVE-REQUEST.

Share content: On many occasions, the most likely actions are to share a document, either as an attachment or via other means. An umbrella action SHARE-CONTENT is used to capture these actions.

A subset of the preprocessed email threads are subsequently annotated. In one embodiment, people serve as annotators to annotate the emails, also referred to as messages or communications, with actions from the set of actions in table 300. Each annotator is asked to imagine that they are a recipient of threaded emails in a workplace environment. Although not required, it may be helpful for the annotators to have experience in a similar work environment from which the emails originated. For each message, the annotator reads through the previous messages in the thread, and annotates with the most likely action (in table 300) they may perform if they had been the addressee of that message. If the most probable action is not defined the set of actions, the annotators annotate with an OTHER action.

In one example, a total of 399 emails from 110 distinct threads were annotated. A Cohen's Kappa was 0:75 for the annotators in the example. Disagreements between multiple annotators may be arbitrated or selected by majority vote.

The annotations collected were comparable in size to other speech act based annotation datasets. However, like other expert-annotated datasets, the dataset was not large enough for end-to-end training. Therefore, training was enriched with additional semantic and pragmatic information derived from other tasks and domains without annotation for expected action.

Data from the additional domains, such as IRC and Reddit may be included for multidomain learning. The use of such data can both augment the training of the training and save time and expense of obtaining and annotating additional communication threads from the target domain.

IRC: The Ubuntu Dialog Corpus is a curated collection of chat logs from Ubuntu's Internet Relay Chat technical support channels (Lowe et al. 2015).

Reddit: Reddit is an internet discussion community consisting of several subreddits, each of which is more or less a discussion forum pertaining to a certain topic. A dataset may be curated from the subreddit r/politics over two consecutive months. Each entry in the dataset consists of the post title, an optional post body, and an accompanying tree of comments. Linear threads may be collected by recursively sampling from the trees.

Examples of data from the additional domains are shown in table 400 in FIG. 4. These examples are likely to elicit actions related to those observed in email data. IRC chats are very task specific and are mostly about technical help. It is observed that many conversational turns start with information requests followed by delivery of that information. One example in table 400 includes a request for information: “could somebody explain how I get the oss compatibility drivers to load automatically in the ubuntu?” The information provided in response was: “you should try these ones, apt src debUURL_unstable/”. The Reddit dataset on the other hand is more diverse, including discussions in r/politics more or less pertaining to comments on American public policies and politics. Messages that require a recipient to take an action are rare, so there is very little information for learning about which action to predict.

FIG. 5 is a table 500 that illustrates prediction labels for multitask learning that may be extracted from the data from the target domain, email, and from additional domains, in this case, IRC and Reddit. Email messages may be labeled as (E-T) end of an email thread and (E-A) this message has attachments(s). IRC communications can be labeled as (I-T), corresponding to turn taking, and Reddit communications can be labeled as (R-T) corresponding to the end of a Reddit thread.

Messages from IRC and Reddit are less precise in terms of speaker intent. Thus, the recipient action scheme is not directly applicable to such messages. However, previous studies on speech acts in Internet forums and chatrooms have shown that there are speech acts common to all these heterogeneous domains, e.g. information requests and deliveries. More data from these domains will help recognition of these speech acts, which in turn help recognize the resulting recipient actions.

In one embodiment, half of the dataset may be used as training data, a quarter as the validation data, and the remaining quarter as test data. Other proportions may be used in further embodiments.

The datasets are largely unlabeled as far as recipient actions are concerned, except for the small subset of Avocado data that was manually annotated. However useful information may still be extracted via machine executed software or by human from their metadata, such as inferred end-of-thread markers (E-T) or system-logged events that can be used to formulate additional prediction tasks for a multitask learning setting as shown in table 500. These multitask labels may also be used to evaluate the multitaskdomain model described in further detail below.

FIG. 6 includes a table 600 showing statistics of conversational data used in the example training data. The number of threads in each domain are shown in the first column, the number of messages in the second column, the average number of emails in a thread in the third column, and the average number of words in each message in a fourth column. In one embodiment, each message may be truncated to 256 words, including BOS and EOS symbols. Each thread was truncated to 32 messages if necessary. The truncation was done to match the Avocado dataset size for faster training and evaluation of the model.

In one embodiment, threaded messages may be modeled as a two-layered hierarchy: at the lower level a message m consists of an ordered list of words: m=[w_(1:::|M|)]. And in turn, a thread x is an ordered list of messages: x=[m1 . . . |x|]. It assumed that each message thread is from a specific domain; and therefore a many-to-one mapping ƒ(x)=d where d∈D is the set of all domains is defined. The tasks are defined to be t∈T which have a many-to-one mapping g(t)=d, d∈D. For prediction, a predictor of task t is defined as hr(x): X→Y, which predicts sequential tags y=[y₁ : : : y_(|x|)]∈Y from a thread x on (a valid) task t. A real-valued task loss of task t on thread x is defined to be

_(t)(y, ŷ): y×y→

, where ŷϵy is the ground truth.

A multitask loss l_(MT) is defined as the sum of task losses of tasks {t_(d)} under the same domain d for a single (output, ground truth) pair (y, ŷ):

${{l_{MT}\left( {\left\{ t_{d} \right\},y,\hat{y}} \right)} = {\sum\limits_{t \in {\{ t_{d}\}}}{\ell_{t}\left( {y,\hat{y}} \right)}}},$ and the aggregate loss

${L_{MT}\left( {\left\{ t_{d} \right\},\left\{ {y_{1\ldots\; K_{d}}^{(d)},{\hat{y}}_{1\;\ldots\; K_{d}}^{(d)}} \right\}} \right)} = {\sum\limits_{k = 1}^{K_{d}}{l_{MT}\left( {\left\{ t_{d} \right\},y_{k}^{(d)},{\hat{y}}_{k}^{(d)}} \right\}}}$ is defined as the sum over K_(d) examples. The multidomain loss L_(MD) is defined to be the sum of aggregate losses over D:

$\begin{matrix} {{L_{MD}\left( \left\{ \left\{ {y_{1\;\ldots\mspace{11mu} K_{d}}^{(d)},{\hat{y}}_{1\;\ldots\; K_{d}}^{(d)}} \right\} \middle| {d\;\epsilon\; D} \right\} \right)} = {\sum\limits_{d\;\epsilon\; D}{L_{MT}\left( {\left\{ {\left. t \middle| {g(t)} \right. = d} \right\},\left\{ {y_{1\;\ldots\mspace{11mu} K_{d}}^{(d)},{\hat{y}}_{1\;\ldots\; K_{d}}^{(d)}} \right\}} \right)}}} & (1) \end{matrix}$

A Recurrent AttentIve Neural Bag-Of-Word model (RAINBOW) is used as a baseline model 700 of threaded messages as illustrated in block flow form in FIG. 7. Email 705 is a first email in a thread, with successive emails in the thread represented at 706 . . . 709. As previously mentioned, there may be up to 256 emails in the thread, so there are 256 rows represented in FIG. 7. Fewer or more rows may be used for different length threads in further embodiments. For convenience of illustration, only the first row has reference numbers, but succeeding rows operate in essentially the same manner on successive emails in the thread.

From a high-level view, RAINBOW is a hierarchical neural network with two encoder layers: the lower layer is a neural bag-of-words encoder 710 that encodes each message m, raw communication text 705, into its message embeddings b(m) 715. And in turn, the upper level thread encoder 720 transforms the independently encoded message embeddings [b(m₁) . . . b(m_(|x|))] into thread embeddings 725 via a learned recurrent neural network e₁ . . . e_(|x|)=ƒ_(RNN)(b(m₁) . . . b(m_(|x|))). (There is a slight abuse of annotation since ƒ_(RNN) actually differs for x of different lengths.) RAINBOW has three main components: message encoder 710, thread encoder 720, and predictor 730.

Message encoder b(m) 710 may be implemented as a bag of words model over {w} in m. Motivated by the unigram features in previous work on email intent modeling, an attentive pooling layer may be added to pick up important keywords. The averaged embeddings then undergo a nonlinear transformation:

$\begin{matrix} {{{b(m)} = {q\left( {\sum\limits_{w\;\epsilon\; m}{\frac{\exp\left( {a\left( {{emb}(w)} \right)} \right)}{\sum_{w^{\prime}\epsilon\; m}{\exp\left( {a\left( {{emb}\left( w^{\prime} \right)} \right)} \right)}}{{emb}(w)}}} \right)}},} & (2) \end{matrix}$ where q:

^(n)→

^(h) is a learned feedforward network, emb:

→

^(n) is the word embeddings of w and a:

^(n)→

the (learned) attentive network that judges how much each word w contributes towards the final representation b(m).

The message embeddings are passed onto the thread-level encoder 720 LSTM to produce a thread embeddings vector: [e ₁ . . . e _(|x|)]=r(b(m ₁) . . . b(m _(|x|)))

Thread embeddings 725 are then passed to the predictor layer 730, and also to the succeeding row as indicated at 735 for use in updating the thread embeddings 726 with the next email in the thread. In one embodiment, the predictions, generated actions 745, are distributions over possible labels. The predictor h_(t) is therefore designed to be a two-layered feed forward network p that maps thread embeddings to distributions over Vt, the label set of task t: h_(t)(e₁ . . . e_(|x|))=[p(·|e₁) . . . p(·|d_(|x|))]. The accompanying loss is naturally defined as the cross entropy between the predictions p(e₁) . . . p(e_(|x|)) and the empirical distribution ŷ=ŷ₁ . . . |x|:

$\begin{matrix} {{\ell_{t}\left( {\hat{y},e_{1\ldots\;{x}}} \right)} = {\frac{\sum\limits_{i = 1}^{x}{{- {\hat{y}}_{i}}\log\;{p\left( {\hat{y}}_{i} \middle| e_{i} \right)}}}{x}.}} & (3) \end{matrix}$

RAINBOW is an extension of Deep Averaging Networks to threaded message modeling. It works well for tagging threaded messages for the messages' properties, such as conversation-turn marking in online chats and end-of-thread detection in emails. However, in its current form, the model is trained to work on exactly one task. It also does not capture the shared dynamics of these different domains jointly when given out-of-domain data. In various embodiments, a family of reparameterized recurrent neural networks easily accommodates multi-domain multi-task learning settings.

FIG. 8 is a partial computation graph consisting of a single LSTM cell 800. In general, recurrent neural networks take a sequence of input data x 810 and recurrently apply a nonlinear function, to get a sequence of transformed representation h, as indicated at 815. In this example, the transformation is represented with the function ƒ_(RNN) parameterized by the RNN parameters θ^(R) at 820 as h=ƒ_(RNN)(x: θ^(R)). For an LSTM model, θ^(R) 820 can be formulated as the concatenated vector of input, output, forget and cell gate parameters [W_(i);W_(o);W_(f);W_(c)] indicated at 825, 826, 827, and 828 respectively. The dotted lines 830, 831, 832, and 833 represent parameterization. Non-parameterized functions are indicated at 840, 841, 842, and 843. The cell 800 state, c, is represented at 850 and a changed cell state c′ is shown at 855. In general, the goal of training an RNN is to find the optimal real-valued vector θ^({circumflex over ( )}R) such that θ^(R)=arg min_(θ) _(R) L(ƒ_(RNN)(x; θ^(R))), for a given loss function L.

In the context of multidomain learning, in analogy eq. (1) is parameterized as:

${L_{MT}\left( \left\{ \left\{ {y_{1\;\ldots\mspace{11mu} K_{d}}^{(d)},{\hat{y}}_{1\;\ldots\; K_{d}}^{(d)}} \right\} \middle| {d\;\epsilon\; D} \right\} \right)} = {{L_{MT}\left( \left\{ \left\{ {{{h\left( x_{1}^{(d)} \right)}\mspace{11mu}\ldots\mspace{14mu}{h\left( x_{K_{d}}^{(d)} \right)}},{\hat{y}}_{1\ldots\; K_{d}}^{(d)}} \right\} \middle| {d\;\epsilon\; D} \right\} \right)} = {\sum\limits_{t,x,\hat{y}}{{\ell_{t}\left( {{h(x)},{\hat{y};\theta_{t}^{R}}} \right)}.}}}$

Two modeling choices are available. Either every task t is modeled DISJOINTly or with TIED parameters. The DISJOINT approach learns a separate set of parameters θ_(t) ^(R) per task t. Therefore, performance of a task is little affected by data from other domain/tasks, except for the regularizing effect through the word embeddings.

On the other hand, the TIED approach ties parameters of all domains to a single θ^(R), which has been a popular choice for multitask/domain modeling—it has been found that the RNN often learns to encode a good shared representation when trained jointly for different tasks. The network also seems to generalize over different domains. However, the value of the shared representation hinges on the assumption that either all domains are similar or the network is capable enough to capture the dynamics of data from all domains at the same time.

An alternative approach is illustrated in a computation graph of a parameter-shared LSTM cell 900 in FIG. 9. Instead of having a single set of parameters {circumflex over (θ)}^(R) for all domains, θ^(R) is reparametrized as a function ϕ 910 of shared components θ^(R) ^(s) 920 and domain specific components θ^(R) ^(d) 930. Namely: θ^(R)=ϕ(θ^(R) ^(x) ,θ^(R) ^(d) ),  (4) and a goal becomes minimizing the loss w.r.t both (θ^(R) ^(s) , θ^(R) ^(d) ):

$\begin{matrix} {{\hat{\theta}}^{R_{s}},{{\hat{\theta}}^{R_{d}} = {\underset{{\hat{\theta}}^{R_{s}},{\hat{\theta}}^{R_{d}}}{argmin}{\sum{{\ell_{t}\left( {x,{\hat{y};{\hat{\theta}}^{R_{s}}},{\hat{\theta}}^{R_{d}}} \right)}.}}}}} & (5) \end{matrix}$

A comparison between a regular RNN and an RNN modified to to reparametrize θ^(R) based on both shared components and domain specific components is illustrated in FIGS. 8 and 9 respectively. Reparametrization allows sharing parameters among networks trained on data of different domains with the shared component θs, while allowing the network to work differently on data from each domain with the domain specific parameters θ_(d).

The design of the function ϕ requires striking a balance between model flexibility and generalizability. The following different variants of reparametrizing θ^(R) by different functions ϕ (and their abbreviations used herein) may be considered:

Additive (ADD): Consider ϕ to be a linear interpolation of a shared base θ^(R) ^(s) and a network specific component θ^(R) ^(d) : θ^(R)=ϕ_(ADD)(θ^(R) ^(s) ,θ^(R) ^(d) ;u _(d))=θ^(R) ^(s) +exp(u _(d))θ^(R) ^(d) ,  (6) where u_(d)ϵ

is a learned parameter. In this formulation ADD a shared θ^(R) ^(s) is learned, along with additive domain-specific parameters {θ^(R) ^(d) |dϵD} for each domain. u_(d) controls how much effect θ^(R) ^(d) has on the final parameters.

Both DISJOINT and TIED can be seen as degenerate cases of ADD: DISJOINT is recovered when the shared component is a zero vector: θ^(R) ^(s) =0 And with u_(d)→−∞ we have θ^(R)=θ^(R) ^(s) , namely TIED.

Additive+Multiplicative (ADDMUL) ADD has no nonlinear interaction between θ^(R) ^(s) and θ^(R) ^(d) : they have independent effects on the composite θ^(R). In ADDMUL there are two components in θ^(R) ^(d) =[θ^(R) ^(da) , θ^(R) ^(dm) ]: the additive component θ^(R) ^(da) and the multiplicative component θ^(R) ^(d) ^(m) which introduces nonlinearity without significantly increasing the parameter count: θ^(R)=ϕ_(ADDMUL)(θ^(R) ^(s) ,θ^(R) ^(d) ;u _(d) ,v _(d))=θ^(R) ^(s) +exp(u _(d))θ^(R) ^(da) +exp(v _(d))θ^(R) ^(dm) ⊗θ_(s),  (7) where ⊗ is the Hadamard product and u_(d), v_(d) ϵ

are learned parameters as in the ADD formulation.

Affine (AFFINE) In this formulation θ^(R) ^(d) are seen as task embeddings. A learned affine transformation W is applied to the task embeddings and add up the shared component θ^(R) ^(s) : θ^(R)=AFFINE(θ^(R) ^(s) ,θ^(R) ^(d) ;W)=θ^(R) ^(s) +Wθ ^(R) ^(d) ,  (8) where W is a learned parameter.

Optimization for the multidomain loss as defined in eq. (1) is performed with gradient descent methods. To update parameters, one thread from each domain (m_(d)|dϵd) is sampled and the network parameters are optimized with an Adam optimizer, which is an algorithm for first-order gradient-based optimization of stochastic objective functions, based on adaptive estimates of lower-order moments. Other optimizers may be used in further embodiments such as Stochastic Gradient Descent, Adadelta, RMSPROP, or Adagrad for example.

FIG. 10 is a block schematic diagram of a computer system 1000 to implement a training system to identify expected actions by recipients of communications such as emails, as well as other devices for performing methods and algorithms according to example embodiments. All components need not be used in various embodiments.

One example computing device in the form of a computer 1000 may include a processing unit 1002, memory 1003, removable storage 1010, and non-removable storage 1012. Although the example computing device is illustrated and described as computer 1000, the computing device may be in different forms in different embodiments. For example, the computing device may instead be a smartphone, a tablet, smartwatch, smart storage device (SSD), or other computing device including the same or similar elements as illustrated and described with regard to FIG. 10. Devices, such as smartphones, tablets, and smartwatches, are generally collectively referred to as mobile devices or user equipment. Further, although the various data storage elements are illustrated as part of the computer 1000, the storage may also or alternatively include cloud-based storage accessible via a network, such as the Internet or server based storage. Note also that an SSD may include a processor on which the parser may be run, allowing transfer of parsed, filtered data through I/O channels between the SSD and main memory.

Memory 1003 may include volatile memory 1014 and non-volatile memory 1008. Computer 1000 may include—or have access to a computing environment that includes—a variety of computer-readable media, such as volatile memory 1014 and non-volatile memory 1008, removable storage 1010 and non-removable storage 1012. Computer storage includes random access memory (RAM), read only memory (ROM), erasable programmable read-only memory (EPROM) or electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD ROM), Digital Versatile Disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium capable of storing computer-readable instructions.

Computer 1000 may include or have access to a computing environment that includes input interface 10010, output interface 1004, and a communication interface 1016. Output interface 1004 may include a display device, such as a touchscreen, that also may serve as an input device. The input interface 1006 may include one or more of a touchscreen, touchpad, mouse, keyboard, camera, one or more device-specific buttons, one or more sensors integrated within or coupled via wired or wireless data connections to the computer 1000, and other input devices. The computer may operate in a networked environment using a communication connection to connect to one or more remote computers, such as database servers. The remote computer may include a personal computer (PC), server, router, network PC, a peer device or other common data flow network switch, or the like. The communication connection may include a Local Area Network (LAN), a Wide Area Network (WAN), cellular. Wi-Fi, Bluetooth, or other networks. According to one embodiment, the various components of computer 1000 are connected with a system bus 1020.

Computer-readable instructions stored on a computer-readable medium are executable by the processing unit 1002 of the computer 1000, such as a program 1018. The program 1018 in some embodiments comprises software that, when executed by the processing unit 1002, performs network switch operations according to any of the embodiments included herein. A hard drive, CD-ROM, and RAM are some examples of articles including a non-transitory computer-readable medium such as a storage device. The terms computer-readable medium and storage device do not include carrier waves to the extent carrier waves are deemed too transitory. Storage can also include networked storage, such as a storage area network (SAN). Computer program 1018 may be used to cause processing unit 1002 to perform one or more methods or algorithms described herein.

EXAMPLES

In example 1, a method includes receiving an email addressed to a recipient user, processing the received email using a reparametrized recurrent neural network model to identify an action based on the received email, and wherein the reparametrized recurrent neural network model has been trained on an email dataset annotated with recipient corresponding actions and reparametrized on unannotated conversation data having structures similar to email data.

Example 2 includes the method of example 1 wherein the model is reparametrized as a function of shared components and domain specific components to provide multi-domain, multi-task learning.

Example 3 includes the method of any of the previous examples wherein the reparametrization function adds the shared and domain specific components, with domain specific components varied in weight for each domain.

Example 4 includes the method of any of the previous examples wherein the reparametrization function adds and multiplies the shared and domain specific components, with domain specific components varied in weight for each domain for adding and a separate multiplicative component to introduce nonlinearity.

Example 5 includes the method of any of the previous examples and further comprising generating one or more actions corresponding to the identified action.

Example 6 includes the method of any of the previous examples and further comprising executing at least one of the one or more generated actions responsive to user selection of the at least one or more generated actions.

Example 7 includes the method of any of the previous examples wherein the generated action comprises an email response with text of the email response being responsive to an identified question in the received email, and wherein executing the generated action comprises sending the email response.

Example 8 includes the method of any of the previous examples wherein the generated action comprises a calendar appointment response with a time, date, and attendees of the calendar appointment being, the calendar appointment responsive to the received email, and wherein executing the generated action comprises sending the calendar appointment to the attendees.

Example 9 includes the method of any of the previous examples wherein the annotated emails are annotated with one or more of the annotations selected from the group of categories consisting of message sending, software interaction, and share content.

Example 10 includes the method of any of the previous examples wherein the unannotated conversation data is labeled with labels corresponding to turn taking and end of a thread which correspond to structure similar to email structure.

Example 11 includes the method of any of the previous examples wherein the reparametrized recurrent neural network model is trained on an email dataset annotated with recipient corresponding actions by encoding the annotated email dataset using a Recurrent AttentIve Neural Bag-Of-Word model (RAINBOW) as a baseline model with two encoding layers comprising encoding each email into message embeddings and encoding each thread into thread embeddings as a function of previous thread embeddings. In example 12 a machine-readable storage device has instructions for execution by a processor of a machine to cause the processor to perform operations to perform a method of generating a model. The method includes receiving a communication addressed to a recipient user, processing the received communication using a reparametrized recurrent neural network model to identify an action based on the received email, and wherein the reparametrized recurrent neural network model has been trained on a communication dataset annotated with recipient corresponding actions and reparametrized on unannotated conversation data having structures similar to the communication dataset data.

Example 13 includes the method of any of the previous examples wherein the model is reparametrized as a function of shared components and domain specific components to provide multi-domain, multi-task learning.

Example 14 includes the method of any of the previous examples wherein the reparametrization function adds the shared and domain specific components, with domain specific components varied in weight for each domain.

Example 15 includes the method of any of the previous examples wherein the reparametrization function adds and multiplies the shared and domain specific components, with domain specific components varied in weight for each domain for adding and a separate multiplicative component to introduce nonlinearity.

Example 16 includes the method of any of the previous examples and further comprising generating one or more actions corresponding to the identified action.

Example 17 includes the method of any of the previous examples and further comprising executing at least one of the one or more generated actions responsive to user selection of the at least one or more generated actions.

Example 18 includes the method of any of the previous examples wherein the generated action comprises an email response with text of the email response being responsive to an identified question in the received communication, and wherein executing the generated action comprises sending the email response.

Example 19 includes the method of any of the previous examples wherein the generated action comprises a calendar appointment response with a time, date, and attendees of the calendar appointment being responsive to the received communication, and wherein executing the generated action comprises sending the calendar appointment to the attendees.

Example 20 includes the method of any of the previous examples wherein the annotated communications are annotated with one or more of the annotations selected from the group of categories consisting of message sending, software interaction, and share content.

Example 21 includes the method of any of the previous examples wherein the unannotated conversation data is labeled with labels corresponding to turn taking and end of a thread which correspond to structure similar to the communication dataset.

Example 22 includes the method of any of the previous examples wherein the reparametrized recurrent neural network model is trained on an email dataset annotated with recipient corresponding actions by encoding the annotated email dataset using a Recurrent AttentIve Neural Bag-Of-Word model (RAINBOW) as a baseline model with two encoding layers comprising encoding each email into message embeddings and encoding each thread into thread embeddings as a function of previous thread embeddings.

In example 23, a system includes one or more processors and a storage device coupled to the one or more processors having instructions stored thereon to cause the one or more processors to execute intent recognition operations. The operations include receiving a communication addressed to a recipient user, processing the received communication using a reparametrized recurrent neural network model to identify an action based on the received communication, and wherein the reparametrized recurrent neural network model has been trained on a communication dataset from a first domain, annotated with recipient corresponding actions, wherein the first domain correlates to the received communication, and reparametrized on unannotated conversation data from a second domain having structures similar to email data.

Example 24 includes the method of any of the previous examples wherein the model is reparametrized as a function of shared components and domain specific components to provide multi-domain, multi-task learning.

Example 25 includes the method of any of the previous examples wherein the reparametrization function adds the shared and domain specific components, with domain specific components varied in weight for each domain.

Example 26 includes the method of any of the previous examples wherein the reparametrization function adds and multiplies the shared and domain specific components, with domain specific components varied in weight for each domain for adding and a separate multiplicative component to introduce nonlinearity.

Example 27 includes the method of any of the previous examples and further comprising generating one or more actions corresponding to the identified action.

Example 28 includes the method of any of the previous examples and further comprising executing at least one of the one or more generated actions responsive to user selection of the at least one or more generated actions.

Example 29 includes the method of any of the previous examples wherein the generated action comprises an email response with text of the email response being responsive to an identified question in the received communication, and wherein executing the generated action comprises sending the email response.

Example 31 includes the method of any of the previous examples wherein the generated action comprises a calendar appointment response with a time, date, and attendees of the calendar appointment being responsive to the received communication, and wherein executing the generated action comprises sending the calendar appointment to the attendees.

Example 32 includes the method of any of the previous examples wherein the annotated communications are annotated with one or more of the annotations selected from the group of categories consisting of message sending, software interaction, and share content.

Example 33 includes the method of any of the previous examples wherein the unannotated conversation data of the second domain is labeled with labels corresponding to turn taking and end of a thread which correspond to structure similar to the communication dataset of the first domain.

Example 34 includes the method of any of the previous examples wherein the reparametrized recurrent neural network model is trained on an email dataset of the first domain annotated with recipient corresponding actions by encoding the annotated email dataset using a Recurrent AttentIve Neural Bag-Of-Word model (RAINBOW) as a baseline model with two encoding layers comprising encoding each email into message embeddings and encoding each thread into thread embeddings as a function of previous thread embeddings.

In example 35, a computer implemented method of training a recurrent neural network (RNN) for identifying actions responsive to received emails includes operations comprising initializing weights of the RNN, training the RNN on a target domain set of recipient action annotated emails, and reparametrizing the RNN on unannotated conversation data threads.

Example 36 includes the method of any of the previous examples wherein the operations further comprise evaluating the RNN on a validation set of action annotated emails to determine an accuracy of classification and repeating the method of claim 1 until a predetermined number of iterations is reached.

Example 37 includes the method of any of the previous examples wherein the operations further comprise if the determined accuracy is the highest accuracy in the iteration, update the best parameters so far.

Although a few embodiments have been described in detail above, other modifications are possible. For example, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. Other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Other embodiments may be within the scope of the following claims. 

The invention claimed is:
 1. A computer implemented method comprising: receiving an email addressed to a recipient user; processing the received email using a reparametrized recurrent neural network model to identify an action based on the received email; and wherein the reparametrized recurrent neural network model has been: trained on an email training dataset annotated with recipient corresponding actions; and reparametrized on non-email unannotated conversation data having structures similar to email data; and generating one or more actions for execution by the computer responsive to the identified action.
 2. The method of claim 1 wherein the model is reparametrized as a function of shared components and domain specific components to provide multi-domain, multitask learning.
 3. The method of claim 2 wherein the reparametrization function adds the shared and domain specific components, with domain specific components varied in weight for each domain.
 4. The method of claim 2 wherein the reparametrization function adds and multiplies the shared and domain specific components, with domain specific components varied in weight for each domain for adding and a separate multiplicative component to introduce nonlinearity.
 5. The method of claim 1 and further comprising executing at least one of the one or more generated actions responsive to user selection of the at least one or more generated actions.
 6. The method of claim 5 wherein the generated action comprises an email response with text of the email response being responsive to an identified question in the received email, and wherein executing the generated action comprises sending the email response.
 7. The method of claim 5 wherein the generated action comprises a calendar appointment response with a time, date, and attendees of the calendar appointment being, the calendar appointment responsive to the received email, and wherein executing the generated action comprises sending the calendar appointment to the attendees.
 8. The method of claim 1 wherein the annotated emails are annotated with one or more of the annotations selected from the group of categories consisting of message sending, software interaction, and share content.
 9. The method of claim 1 wherein the unannotated conversation data is labeled with labels corresponding to turn taking and end of a thread which correspond to structure similar to email structure.
 10. The method of claim 1 wherein the reparametrized recurrent neural network model is trained on the email training dataset annotated with recipient corresponding actions by encoding the annotated training email dataset using a Recurrent AttentIve Neural Bag-Of-Word model (RAINBOW) as a baseline model with two encoding layers comprising: encoding each email into message embeddings; and encoding each thread into thread embeddings as a function of previous thread embeddings.
 11. A machine-readable storage device having instructions for execution by a processor of a machine to cause the processor to perform operations to perform a method of generating a model, the method comprising: receiving a communication addressed to a recipient user; processing the received communication using a reparametrized recurrent neural network model to identify an action based on the received communicationemail; and wherein the reparametrized recurrent neural network model has been: trained on a communication dataset annotated with recipient corresponding actions; and reparametrized on unannotated conversation data having structures similar to the communication dataset data; and generating one or more actions for execution by the computer responsive to the identified action.
 12. The machine-readable storage device of claim 11 wherein the model is reparametrized as a function of shared components and domain specific components to provide multi-domain, multi-task learning, and wherein the reparametrization function adds the shared and domain specific components, with domain specific components varied in weight for each domain and adds and multiplies the shared and domain specific components, with domain specific components varied in weight for each domain for adding and a separate multiplicative component to introduce nonlinearity.
 13. The machine-readable storage device of claim 11 and further comprising executing at least one of the one or more generated actions responsive to user selection of the at least one or more generated actions.
 14. The machine-readable storage device of claim 13 wherein the generated action comprises an email response with text of the email response being responsive to an identified question in the received communication, and wherein executing the generated action comprises sending the email response.
 15. The machine-readable storage device of claim 13 wherein the generated action comprises a calendar appointment response with a time, date, and attendees of the calendar appointment being responsive to the received communication, and wherein executing the generated action comprises sending the calendar appointment to the attendees.
 16. The machine-readable storage device of claim 11 wherein the annotated communications are annotated with one or more of the annotations selected from the group of categories consisting of message sending, software interaction, and share content.
 17. The machine-readable storage device of claim 11 wherein the reparametrized recurrent neural network model is trained on an email dataset annotated with recipient corresponding actions by encoding the annotated email dataset using a Recurrent AttentIve Neural Bag-Of-Word model (RAINBOW) as a baseline model with two encoding layers comprising: encoding each email into message embeddings; and encoding each thread into thread embeddings as a function of previous thread embeddings.
 18. A computer implemented method of training a recurrent neural network (RNN) for identifying actions responsive to received emails, the method including operations comprising: initializing weights of the RNN; training the RNN on a target domain set of recipient action annotated emails; and reparametrizing the RNN on non-email unannotated conversation data threads.
 19. The computer implemented method of claim 18 wherein the operations further comprise: evaluating the RNN on a validation set of action annotated emails to determine an accuracy of classification; repeating the method of claim 1 until a predetermined number of iterations is reached; and if the determined accuracy is the highest accuracy in the iteration, updating the best parameters. 